//package com.deer.wms.base.system.codegenerator;
//
//import com.baomidou.mybatisplus.annotation.DbType;
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.config.*;
//import com.baomidou.mybatisplus.generator.config.rules.DateType;
//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
//import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
//
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * 代码生成器
// *
// * @author Lee
// */
//public class MyCodeGenerator {
//    private final static String CODEPATH =
//            "E:\\yxzz\\hg\\hg-assets-client\\src\\main\\java";
//
//    public static void main(String[] args) {
//        AutoGenerator mpg = new AutoGenerator();
//        /**
//         *  全局配置
//         */
//        GlobalConfig gc = new GlobalConfig();
//
//        gc.setOutputDir(CODEPATH). //输出目录
//                setFileOverride(true). // 是否重写覆盖
//                setIdType(IdType.NONE). // 主键策略，无
//                setDateType(DateType.TIME_PACK). //时间类型策略，JDK8类型
//                setActiveRecord(false).  // 不需要ActiveRecord特性的请改为false
//                setEnableCache(false). // XML 二级缓存
//                setBaseResultMap(true). // XML开启ResultMap
//                setBaseColumnList(false). // XML开启columList
//                setSwagger2(true).//生成Swagger2模式
//                setOpen(false).  // 是否打开输出目录
//                setAuthor("xu").  // 作者
//                // 自定义文件命名，注意 %s 会自动填充表实体属性！
//                setControllerName("%sController").
//                setServiceName("I%sService").
//                setServiceImplName("%sService").
//                setMapperName("%sMapper").
//                setXmlName("%sMapper");
//
//
//        /**
//         * 数据源配置
//         */
//        DataSourceConfig dsc = new DataSourceConfig();
//        dsc.setDbType(DbType.MYSQL).
//                setDriverName("com.mysql.jdbc.Driver").
//                setUsername("root").
//                setPassword("mysql_xx@2019").
//                setUrl("jdbc:mysql://47.111.184.95:3306/customs_dev?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8");
////                setUrl("jdbc:mysql://47.111.184.95:3306/yxzz_less_code?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8");
//
//        /**
//         * 策略配置
//         */
//        StrategyConfig strategy = new StrategyConfig();
////		strategy.setTablePrefix(getValue("prefix"))  // 此处可以修改为您的表前缀
////        String tables = "movie";
////        String[] split = tables.split("\n");
//
////                String[] split = new String[]{"zc_task_record"};
//        String[] split = new String[]{"zc_floor_zoom","zc_floor"};
////              String[] split = new String[]{"am_project_org"};
//                strategy.setSkipView(false). //  跳过视图
//                setNaming(NamingStrategy.underline_to_camel). //  数据库表映射到实体的命名策略,下划线转驼峰
//                setColumnNaming(NamingStrategy.underline_to_camel). //  数据库表字段映射到实体的命名策略,下划线转驼峰
//                setInclude(split).  // 需要包含的表名，允许正则表达式（与exclude二选一配置）
//                //setExclude(null). //需要排除的表名，允许正则表达式
////                setSuperEntityClass(BaseEntity.class).//  自定义基础的Entity类
////                setSuperEntityColumns("create_user_id","gmt_create","update_user_id","gmt_modified","is_deleted","remark","id").//  自定义基础的Entity类，公共字段
//                //setSuperServiceClass(null). //  自定义基础的服务层类
//                //setSuperServiceImplClass(null).//  自定义基础的服务层实现类
//                //setSuperControllerClass(null).//  自定义基础的控制层实现类
//                setEntityColumnConstant(false). //【实体】是否生成字段常量（默认 false）
//                setEntityBuilderModel(true). //【实体】是否为构建者模型（默认 false）
//                //setSuperMapperClass("com.yxzz.common.BaseMapper"). //  自定义公共mapper类
//                setEntityLombokModel(true). // 设置lombok风格的实体类
//                setRestControllerStyle(true).  //  生成@RestController注解
//                setControllerMappingHyphenStyle(true).  //  controller映射路径驼峰转连字符
//                setEntityTableFieldAnnotationEnable(true);  //  是否生成实体时，生成字段注解
//
//        /**
//         *  包配置
//         */
//        PackageConfig pc = new PackageConfig();
////        pc.setParent("com.auto.api").//父包名。如果为空，将下面子包名必须写全部， 否则就只需写子包名
//        pc.setParent("com.assets.api").//父包名。如果为空，将下面子包名必须写全部， 否则就只需写子包名
//                //.setModuleName(getValue("moduleName"))
//                  //      setController("controller").
//                //setService("service").
//                //setServiceImpl("service.impl").
//                //setMapper("mapper").
//                setEntity("domain.pojo");
//                //setXml("mapper.xml");
//
//        //配置自定义属性注入
//        InjectionConfig injectionConfig = new InjectionConfig() {
//            //.vm模板中，通过${cfg.abc}获取属性
//            @Override
//            public void initMap() {
//                Map<String, Object> map = new HashMap<>();
////                map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");
//                map.put("abc", "自定义属性描述");
//                this.setMap(map);
//            }
//        };
//        mpg.setCfg(injectionConfig);
//        // 配置模板
//        TemplateConfig templateConfig = new TemplateConfig();
//        // 使用自定义模板，不想要生成就设置为null,如果不设置null会使用默认模板
//        //指定自定义模板路径, 位置：/resources/templates/entity2.java.ftl(或者是.vm)
////注意不要带上.ftl(或者是.vm), 会根据使用的模板引擎自动识别
//        templateConfig.setEntity("mybatisPlus/entity.java");
//                //setController("mybatisPlus/controller.java").
//                //setMapper("mybatisPlus/mapper.java").
//                //setService("mybatisPlus/service.java").
//                //setServiceImpl("mybatisPlus/serviceImpl.java").
//                //setXml("mybatisPlus/mapper.xml");
//
//        mpg.setTemplate(templateConfig).//模板配置
//                setTemplateEngine(new FreemarkerTemplateEngine()).//使用Freemarker模板
//                setPackageInfo(pc). //包配置
//                setStrategy(strategy). //策略配置
//                setDataSource(dsc). //数据源
//                setGlobalConfig(gc); //全局配置
//        // 执行生成
//        mpg.execute();
//    }
//
//}
